// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import ListClass from '@api/base/model/ScheduleModelListQueryReq'
import BaseClass from '@api/base/model/ScheduleModelDto'
import ChildClass from '@api/base/model/ModelContentDto'
import state from '@admin/views/Maintain/detail/DetailSchedule/store/state'
import API from './API'

// ============================== 导出状态集 ============================== //

export default {
  // —————————————————————————————— 常量状态 —————————————————————————————— //

  /**
   * 接口
   */
  API,

  /**
   * 映射
   */
  MAP: {
    WORD: '模板', // 词语

    /**
     * 操作按钮
     */
    BTNS: {
      0: ['show', 'edit', 'del'],
      1: ['show', 'edit', 'del', 'rej'],
      2: ['show', 'edit', 'del', 'pass'],
    },

    /**
     * 检查设备情况
     */
    checkState: (row) => row.content ? 'ready' : '',

    /**
     * 检查读数记录
     */
    checkRecord: (row) => row.content ? 'ready' : '',

    /**
     * 检查确认事项
     */
    checkEvent: (row) => row.content ? 'ready' : '',

    /**
     * 检查选择设备
     */
    checkDevice: (row) => row.deviceId ? 'ready' : '',

    /**
     * 检查选择属性点
     */
    checkPoint: (row) => row.deviceMonitorId ? 'ready' : '',
  },

  /**
   * 字典
   */
  DICT: {
    /**
     * 类型
     */
    TYPE: state.DICT.TYPE,

    /**
     * 时间类型
     */
    TIME_TYPE: [
      [5, '前后 5 分钟'],
      [15, '前后 15 分钟'],
      [30, '前后 30 分钟'],
    ],
  },

  /**
   * 初始参数
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setParam() 重置时使用
   * 4. WebSearch 高级查询点重置时使用
   */
  INIT_PARAM: CORE.initObj(ListClass, {
    //
  }),

  /**
   * 初始单项
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setOne() 重置时使用
   * 4. openAdd() 新增时使用
   */
  INIT_ONE: CORE.initObj(BaseClass, {
    status: 1, // 状态 (默认启用)
    userIds: '', // 员工 ID 拼接串

    state: [ // 设备情况列表
      CORE.initObj(ChildClass, { type: 1, key: `${Date.now()}` }),
    ],
    record: [ // 读数记录列表
      CORE.initObj(ChildClass, { type: 2, key: `${Date.now()}` }),
    ],
    event: [ // 确认事项列表
      CORE.initObj(ChildClass, { type: 3, key: `${Date.now()}` }),
    ],
  }),
}
